/* Пример программы для доступа к PCF8583 */

/* Микроконтроллер  AT90S2313, шина I2C PCF8583 подключена к PORTD.
   Для сигнала sda используем 0 бит порта, 
   для scl - 1 бит порта (рис. 365) */

#include <90s2313.h> 	// подключаем  заголовочный файл используемого 
					// микроконтроллера AVR

/* Перед подключением файла pcf8583.h, объявим порт, используемый 
   для подключения шины I2C и биты порта, используемые для 
   сигналов sda и scl */

/* Шина I2C подключена к PORTD микроконтроллера AT90S2313 
   Адрес порта находим в файле 90s2313.h в строке: sfrb PORTD=0x12; */
#asm 
.equ __i2c_port=0x12 
.equ __sda_bit=0 
.equ __scl_bit=1 
#endasm 

/* Теперь можно подключать функции часов реального времени PCF8583 */ 
#include <pcf8583.h>

/* Основная функция программы */ 

void main(void) 
{ 
 	unsigned char hour,minute,second,hsecond;	// Объявляем переменные для
									// хранения значений часов,
									// минут, секунд и сотых
									// долей секунд
		unsigned char date, month; 	// Объявляем переменные для хранения
							// значений даты и месяца

		/* инициализируем шину I2C */ 
		i2c_init();

		/* инициализируем Часы Реального Времени PCF8583 с адресом 0,
   	   будильник c датой */ 
		rtc_init(0,1);

		rtc_get_time(0,&hour,&minute,&second,&hsecond); 	// читаем время 
											// из RTC с
											// адресом 0
		rtc_get_alarm_date(0,&date,&month);	// читаем дату из будильника RTC с
								// адресом 0		
	
		... 					// далее в программе можно использовать 
							// текущее значение времени и даты
}
